package com.tiny.tinyweb.core.utils;

import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * JSON字符串的支持类。
 *
 * @author wxiaobin
 */
public class JsonUtils {
    private static final ObjectMapper objectMapper = new ObjectMapper();

    /**
     * 将java对象转换为JSON字符串。
     *
     * @param obj java对象
     * @return JSON字符串
     * @throws Exception 调用{@link ObjectMapper#writeValueAsString(Object)}时发生异常
     */
    public static <T> String toJSON(T obj) throws Exception {
        return objectMapper.writeValueAsString(obj);
    }

    /**
     * 将JSON字符串转换为java对象。
     *
     * @param json JSON字符串
     * @param type java对象的类型
     * @return java对象
     * @throws Exception 调用{@link ObjectMapper#readValue(String, Class)}时发生异常
     */
    public static <T> T toObject(String json, Class<T> type) throws Exception {
        return objectMapper.readValue(json, type);
    }
}
